1. Field of the Invention
The present invention disclosed herein relates to data storage devices, and more particularly, to a data storage device, a memory system, and a computing system using a nonvolatile memory device.
2. Description of the Related Art
Memory devices are generally divided into two classes: volatile memory devices and nonvolatile memory devices. The volatile memory devices are typically semiconductor memory devices that have a high read/write speed but lose stored data when power supply thereto is interrupted. On the other hand, the nonvolatile memory devices can retain stored data even when power supplied thereto is interrupted. Therefore, the nonvolatile memory devices are used to store data that must be retained regardless of power supply.
Examples of the nonvolatile semiconductor memory devices are mask read-only memories (MROMs), programmable read-only memories (PROMs), erasable programmable read-only memories (EPROMs), and electrically erasable programmable read-only memories (EEPROMs). Flash memory is a specific type of EEPROM (Electrically Erasable Programmable Read-Only Memory) that is erased and programmed in entire “blocks”. Flash memories have a function of electrically erasing data of cells in a “batch” manner. Flash memories are widely used in computers and memory cards. Recently, flash memory has become the dominant technology wherever a significant amount of non-volatile, solid-state storage is needed. Common applications include PDAs (personal digital assistants), laptop computers, digital audio players, digital cameras and mobile phones. It has also gained popularity in the game console market, where it is often used instead of EEPROMs or battery-powered SRAM for game save data. High capacity flash memories are now widely used as primary computer data storage devices instead of hard disk drives.
In comparison with other memory devices, a flash memory is advantageous in that it can provide a high read speed at a relatively low unit cost. However, the flash memory is characterized by a block erase operation must be performed beforehand in order to write data therein and the block data erase time is greater than its data write time. These characteristics make it difficult to use the flash memory as a main system RAM (random access memory), and also hinders the use of a conventional hard-disk file system even when the flash memory is used as an solid state drive (SSD). Thus, a flash translation layer (FTL) is used between the file system and the flash memory to hide the erase operation of the flash memory. Flash memory devices are widely used not only as data storages but also as code storages that store data that must be retained regardless of power supply. Flash memory devices can be used for code storage in mobile devices (e.g., cellular phones, PDAs, digital cameras, portable game consoles, and MP3Ps) and also in home applications (e.g., HDTVs, DVD players, routers, and GPS units).
The flash translation layer (FTL) performs functions such as management of logical address-to-physical address mapping information, management of bad blocks, management of data protection against unexpected power interruption, and wear leveling. For example, in a write operation of the flash memory, the FTL serves to map a logical address, which is generated by the file system, to a physical address of the flash memory that has beforehand performed an erase operation. The FTL uses an address mapping table for rapid address mapping.
The flash translation layer (FTL) specification allows a flash device to look like a hard disk drive, but still have effective wear leveling. The address mapping function of the FTL enables a host to recognize a flash memory device as a hard disk drive (or as an SRAM) and to access the flash memory device in the same way as for the hard disk drive. Newer NAND flash chips have pages comprising 2048 bytes+64 bytes spare areas, and strict write requirements. Each block contains 32 pages. Each page within a memory block must be written to in sequential order, and each page must be written only once.
Recently, a data storage device, which includes at least two or more heterogeneous memory cells as illustrated in FIG. 1, was developed to solve both the performance/price problems of a data storage device. See, A Novel Memory Hierarchy for Flash Memory Based Storage Systems, by Keun Soo Yim, published in the Journal of Semiconductor Technology and Science Vol. 5 No. 4, 2005. 12. In such a data storage device having at least two or more heterogeneous memory cells as illustrated in FIG. 1 many types of flash memories (e.g., SLC and MLC flash memories) are used in order to reduce the overall storage cost. Write requests are classified into two types, “hot” and “cold”, where hot data is vulnerable to be modified in the near future. Only hot data is stored in the faster SLC flash, while the cold data is kept in slower MLC flash, or in NOR flash. The cell characteristics of the SLCs and MLCs are closely related to the chip price and the frequency of occurrence of bad blocks. A window between adjacent program states (i.e., a state-to-state window) of an MLC is narrower than a window of an SLC. Also, a margin between the edges of a threshold voltage distribution and a voltage applied to a selected word line in a read operation further decreases as the window width decreases. Thus, the probability of invalid sensing due to a process variation or a change in the temperature, the operation voltage and the voltage level of a selected word line is higher in an MLC than in an SLC. Therefore, the SLC is superior to the MLC in storing, for example, BIOS (basis input/output system) data and font data that require good storage characteristics. On the other hand, the MLC is superior to the SLC in storing, for example, voice data that have no problem even in the event of a storage failure in one or some of a large quantity of consecutive data bits.
In a write operation, the FTL performs an address mapping operation of mapping a logical address generated by a file system to a physical address of a flash memory. The address mapping table managed by the flash translation layer (FTL) are stored in metadata format in one memory block of the flash memory device. As well known in the art, the full page address mapping method is better than a log block based address mapping method in terms of the write performance but generates two or more times the quantity of metadata to be managed than the log block based address mapping method. If metadata generated as a result of full page address mapping are stored in one or a few specific memory blocks, a program erase operation may be repeatedly performed on that specific memory block. This may reduce the lifetime of that specific memory block.